from pyecharts import *
import time
import sys
sys.path.append('/root/dev/python')
from mytool.statistic.ping_lose import Ping5


def reflesh_web(func):
    def inner():
        while 1:
            func()
            time.sleep(3)
            print('sleep 5 sec.')
    return inner


p = Ping5()


@reflesh_web
def demo_bar():
    bar_days = Bar()
    bar_hours = Bar()
    bar_minutes = Bar()
    ping_days = p.select('days')
    ping_hours = p.select('hours')
    ping_minutes = p.select('minutes')

    for ip in ping_days.keys():
        # add第一个参数表示每个时间点中有几个丢包IP，第二个参数表示不同的时间点，第三个表示不同时间点丢包的数量。
        time_point = [value[0] for value in ping_days[ip]]
        time_value = [value[1] for value in ping_days[ip]]
        bar_days.add(ip, time_point, time_value)

    for ip in ping_hours.keys():
        # add第一个参数表示每个时间点中有几个丢包IP，第二个参数表示不同的时间点，第三个表示不同时间点丢包的数量。
        time_point = [value[0] for value in ping_hours[ip]]
        time_value = [value[1] for value in ping_hours[ip]]
        bar_hours.add(ip, time_point, time_value)

    for ip in ping_minutes.keys():
        # add第一个参数表示每个时间点中有几个丢包IP，第二个参数表示不同的时间点，第三个表示不同时间点丢包的数量。
        time_point = [value[0] for value in ping_minutes[ip]]
        time_value = [value[1] for value in ping_minutes[ip]]
        bar_minutes.add(ip, time_point, time_value)

    timeline = Timeline(is_auto_play=False, timeline_bottom=0, width=1600, height=800,)
    timeline.add(bar_minutes, '每分钟数据对比', )
    timeline.add(bar_hours, '每小时数据对比')
    timeline.add(bar_days, '每天数据对比')
    timeline.render(path='index.html')


if __name__ == '__main__':
    demo_bar()
